Linus Q&A


23 October, 2002, somewhere between Grand Cayman and Jamaica

Neil Bauman: Without you, of course, we wouldn't have this event. So I want to personally thank you very much.

Linus: You had this event without me last year.

(Laughter and clapping.)

Linus: The reason this is a Q&A is that I don't do talks much anymore. I used to a long time ago. And then I realized I don't actually like doing them anymore. And a lot of other people do talks. So... I basically stopped a few years ago. So when Neil asked I said "Eeeh, I'd like to go on a cruise, but I don't do talks; so what about a Q&A instead.

I like Q&As, but the Qs are important. It's embarrassing standing here... staring at people.

(Laughter.)

And the Qs should hopefully be fairly varied. Not just from one person.

Just to get things started I'll tell a bit about what I'm doing right now. Then you can think of questions during that.

I don't know how many of you are aware I do only kernel stuff. I did user level stuff last time about ten years ago. And that was only done because without the user level stuff the kernel wasn't usable, and it took a few months before somebody else stood up and said "Hey, I'll take care of that."

I don't know what happens outside the kernel and frankly I don't much care.

(Laughter)

What happens inside the kerne, that I care about, and right now we are very close to a feature freeze. We're not quite there yet, but it's supposed to be at the end of this month. So when I get home I've got like three days to say no to people.

(Laughter)

After that we're done. So we're pretty close to what will be 2.6, feature wise. And actually it looks pretty stable too. So it doesn't look too bad. One of the big features that has happened during 2.5, and the major one for me, is the block device layer got completely re-written in many different ways. The queuiing is different. Just the stack for a block device driver is very different. You register disks differently. You keep track of all the disk data -- how many partitions you have -- all of that is completely different.

Right now one of the major issues, actually in 2.5, after the feature freeze, will be to make sure that all block device drivers are updated to the new (order?). And that's going to be painful. That's probably the major part of instability right now in the kernel, in the development series -- that a lot of drivers need to be updated, need to be tested. They don't just have to complile; they have to work. And for that reason, to be honest, if feature freeze is the end of this month, code freeze can't reasonably be before most drivers are in good enough shape and we can say "Okay, screw the rest."

So that's at least a few more months. So let's say early next year. Then from code freeze to actually saying "This is 2.6", give that another few months. And we're actually looking to Q3 for a real 2.6 release. So it's something like six months away. But we still know pretty much what is there.

So apart from the block device layer rewrite, one of the big things for me in 2.5 is actually the BitKeeper. Finally for the first time in ... ever, the kernel is actually under source control management. I've used source control before. And I hate CVS. I will not touch it with a ten foot pole unless people pay me money. And I love BitKeeper. This is kind of frustrating to some people in the Linux community because BitKeeper is obviously not free software. It's just much better than any other source control management out there, that is free software.

And part of what makes BitKeeper so unique for the kernel is the fact that it is distrubuted. It is truly distributed. Every other source control management system I've ever seen basically depends on this notion that one person or one repository is the leading repsository. And then you can use SSH or CVS, or a lot of tools, to actually get that repository copied out over the world. But they all have this one main-tool-of-them-all mentality. And BitKeeper doesn't. Every developer has a complete Bitkeeper respository if they use the Bitkeeper. And they're all equal. there is no one respository. Which is exactlyl the way I want things to work, because I've always hated that notion that there is one place to go for things.

Because when somebody makes (development?), he has his own tree, and should be a first class citizen -- somebody who has Bitkeeper to do development, that automatically happens. I want to stress this point, because I'm hopoing that some people in the open source community will eventually see the light and stop pushing CVS, and to do a Bitkeeper-like thing instead. Because I think we need that, eventually... after Larry has made enough money.

(Chuckles.)

What else is new? I actually made a list (goes over to his laptop).

Device management. One of the things we had for a long time was trying to do the right thing when you power down the machine, for example.


JaLUG

Audience member: Linus, can you describe for me, in terms of people, what the tree of patch contributors looks like from your point of view. Are they five people then five thousand... or how the layering out goes? I saw a Brazilian young fellow in London a couple of months ago who's the 2.4 maintainer...

Linus: Marcello?

Audience member: Yeah. Listening to him, and talking about the volume of data that he was dealing with, and the number of people, was absolutely terrifying. I use the 2.4 kernel and I thought "My God... I thought I had this stable thing. And there was so much going on. And I'd be interested to hear how much (garbled)

Linus: I'm really trying to keep the number of people I interact with down. For my usual mode of operation is that if I don't have time for something, and it's not one of several people I just won't answer email. And I do that because (a) it's the fastest way to handle email -- just ignore it, right? and (b) it actually it is the only way to discourage people from continuing. So it actually has a purpose. Because if they don't have anything really important they won't bother me again. That's kind of cold, but that's how it is. That doesn't mean I always ignore the people outside the few I always take patches from. But it means that outside the group I always take patches from, it kind of depends on what else is going on.